<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">


// function wxShareCallback(){
//   var title = '微信分亨!';
//   var desc = '微信分亨!';
//   var link = "http://www.hong-feng.com/index.html";
//   var imgUrl = 'http://www.hong-feng.com/logo.png'; //需要大于 400x400


//   shareTimeLine(title, link, imgUrl, shareSuccessCallback);
//   shareAppMessage(title, link, imgUrl, desc, shareSuccessCallback);
//   shareQQ(title, link, imgUrl, desc, shareSuccessCallback);
//   shareWeibo(title, link, imgUrl, desc, shareSuccessCallback);
// }

// function shareSuccessCallback(){
  
// }

var wxReadyFlag = false;

$(function(){
  wx.config({
      debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
      appId: '${(js_sign.appid)!}', // 必填，公众号的唯一标识
      timestamp: ${(js_sign.timestamp)!"''"}, // 必填，生成签名的时间戳，切记时间戳是整数型，别加引号
      nonceStr: '${(js_sign.noncestr)!}', // 必填，生成签名的随机串
      signature: '${(js_sign.signature)!}', // 必填，签名，见附录1
      jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'hideOptionMenu', 'chooseImage', 'uploadImage', 'scanQRCode'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
  });

  wx.ready(function(){
    wxReadyFlag = true;

    // alert('加载成功');
    // wxShareCallback();
  });
  
  /*wx.error(function(res){

		// config信息验证失败会执行error函数，如签名过期导致验证失败，具体错误信息可以打开config的debug模式查看，也可以在返回的res参数中查看，对于SPA可以在这里更新签名。
	
	});*/
  
});

//分享朋友圈
function shareTimeLine(title, link, imgUrl, callback){
  if(!checkReady()){
    return false;
  }
  wx.onMenuShareTimeline({
      title: title, // 分享标题
      link: link, // 分享链接
      imgUrl: imgUrl, // 分享图标
      success: function () { 
          // 用户确认分享后执行的回调函数
		  if(callback && callback != null){
		  	 callback();
		  }
      },
      cancel: function () { 
          // 用户取消分享后执行的回调函数
      }
  });
}

//分享给朋友
function shareAppMessage(title, link, imgUrl, desc, callback){
  if(!checkReady()){
    return false;
  }
  wx.onMenuShareAppMessage({
      title: title, // 分享标题
      desc: desc, // 分享描述
      link: link, // 分享链接
      imgUrl: imgUrl, // 分享图标
      type: '', // 分享类型,music、video或link，不填默认为link
      dataUrl: '', // 如果type是music或video，则要提供数据链接，默认为空
      success: function () { 
          // 用户确认分享后执行的回调函数
		  if(callback && callback != null){
		  	 callback();
		  }
      },
      cancel: function () { 
          // 用户取消分享后执行的回调函数
      }
  });
}

//分享到QQ
function shareQQ(title, link, imgUrl, desc, callback){
  if(!checkReady()){
    return false;
  }
  wx.onMenuShareQQ({
    title: title, // 分享标题
    desc: desc, // 分享描述
    link: link, // 分享链接
    imgUrl: imgUrl, // 分享图标
    success: function () { 
       // 用户确认分享后执行的回调函数
		  if(callback && callback != null){
		  	 callback();
		  }
    },
    cancel: function () { 
       // 用户取消分享后执行的回调函数
    }
});
}

//分享到腾讯微博
function shareWeibo(title, link, imgUrl, desc, callback){
  if(!checkReady()){
    return false;
  }
  wx.onMenuShareWeibo({
    title: title, // 分享标题
    desc: desc, // 分享描述
    link: link, // 分享链接
    imgUrl: imgUrl, // 分享图标
    success: function () { 
       // 用户确认分享后执行的回调函数
		  if(callback && callback != null){
		  	 callback();
		  }
    },
    cancel: function () { 
        // 用户取消分享后执行的回调函数
    }
});
}


function checkReady(){
  if(wxReadyFlag){
    return true;
  }else{
    alert("微信API未加载完成，请稍候！");
    return false;
  }
}


function chooseImage(json_params, callback){
  if(!checkReady()){
    return false;
  }
  wx.chooseImage({
    count: 5, // 默认9
    sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图，默认二者都有
    // sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机，默认二者都有
    sourceType: ['album'],
    success: function (res) {
      var localIds = res.localIds; // 返回选定照片的本地ID列表，localId可以作为img标签的src属性显示图片
      if(localIds.length > 0){
        json_params.localIds = localIds;
        uploadImage(localIds, json_params, callback, true);
      }else{
        alert("请选择图片上传！");
      }
    }
  });
}

var itemArr = null;
var itemIdex = 0;
function uploadImage(localIds, json_params, callback, isInit){
  if(!checkReady()){
    return false;
  }

  if(isInit){
    itemIdex = 0;
    itemArr = localIds;
  }
  
  if(itemIdex < itemArr.length){

    // alert(itemIdex + " : " + itemArr[itemIdex]);
    wx.uploadImage({
      localId: itemArr[itemIdex], // 需要上传的图片的本地ID，由chooseImage接口获得
      isShowProgressTips: 1, // 默认为1，显示进度提示
      success: function (res) {
        // alert(JSON.stringify(res));
        var serverId = res.serverId; // 返回图片的服务器端ID
        json_params.serverId = serverId;
        //alert(serverId);
        showImage(serverId, json_params, callback);
      }
    });

    itemIdex++;
  }else{
    // itemIdex = 0;
  }
  /*
  for(var i = 0; i < localIds.length; i++){
    wx.uploadImage({
      localId: localIds[i], // 需要上传的图片的本地ID，由chooseImage接口获得
      isShowProgressTips: 1, // 默认为1，显示进度提示
      success: function (res) {
        // alert(JSON.stringify(res));
        var serverId = res.serverId; // 返回图片的服务器端ID
        json_params.serverId = serverId;
        //alert(serverId);
        showImage(serverId, json_params, callback);
      }
    });
  }
  */
}

function showImage(serverId, json_params, callback){
  // alert('OK : ' + serverId);
  $.ajax({
        url:'${path.contextPath }/upload/getWxImage.do',
        type:'post',
        data: {media_id : serverId},
        dataType:'json',
        cache:false,
        complete:function(XMLHttpRequest, textStatus){
           //alert(XMLHttpRequest.responseText); 
         },
        success:function(msg){
          //回调
         // alert(msg.imgFileSrc);
          if(msg.state == 0)
          {
           callback(msg.result.attach_code, json_params);

           //下一张图片上传
           // uploadImage(serverId, json_params, callback);
          }
          else
          {
            alert("上传失败，微信服务器繁忙！");
          }
      
        }
    });
}

//打开扫描二维码
function openScanCode(callback){
  // alert("打开扫描 : ${(js_sign.appid)!} # ${(js_sign.signature)!}");
  if(!checkReady()){
    return false;
  }
  wx.scanQRCode({
      needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
      scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码，默认二者都有
      success: function (res) {
          var result = res.resultStr; // 当needResult 为 1 时，扫码返回的结果
          // alert(result);
          callback(result);
      }
  });
}

</script>